package day_03Method;

public class Work01 {
    public static void main(String[] args) {

        numAdd(9);

        theDigit(100000223);

        double maxInt = getMax(100,10,1.0);
        System.out.println(maxInt);
    }

    // 输出从 1 到 n 相加的和
    public static void numAdd(int num){
        int sum = 0;
        for (int i = 0; i < num+1; i++) {
            sum+=i;
        }
        System.out.println(sum);

    }

    // 输出该整数位几位数
    public static void theDigit(int num){
        int i = 1;
        while (num/10>0){
            num /=10;
            i++;
        }
        System.out.println("该数为 : " + i +"位数");

    }

    // 返回两个数中的最大值
    public static int getMax(int a,int b){
        return a>b?a:b;
    }
    public static double getMax(double a,double b){
        return a>b?a:b;
    }
    public static double getMax(double a,double b,double c){
        return a>b?(a>c?a:c):(b>c?b:c);
    }
    /**
     * java中方法的重载与什么有关，如果两个方法的返回值不同其余相同，是否可以构成方法的重载
     *
     *      java 中方法的重载与 参数的数量 , 排列顺序 , 数据类型有关
     *      如果两个方法的返回值不同其余相同 不能构成方法重载
     */

    /**
     * 变量作为参数传递，如果在方法中变量的值被改变会不会影响原变量的值，为什么
     *
     *      基本数据类型 和String 不会被改变
     *      除String 类型外的 引用数据类型会被改变
     *
     *      基本数据类型 在其他方法中改变时 本质是重新创建了 同名 不同作用域的 新变量 不会被改变
     *      String 类型 在改变时 相当于创建了一个新值
     *      引用数据类型 传递的是地址 在其他方法中操作的是同一地址 的元素 所以会被改变
     *
     *
     *
     *
     *
     */
}
